Method and system for processing audio communications over a network

ABSTRACT

A method of processing audio communications over a social networking platform, comprising: at a server: receiving a first audio transmission from a second client device in a source language distinct from a default language associated with the first client device; obtaining current user language attributes for the first client device, which are indicative of a current language used for the audio and/or video communication session at the first client device; when the current user language attributes suggest a target language currently used for the audio and/or video communication session at the first client device is distinct from the default language: obtaining a translation of the first audio transmission from the source language into the target language; and sending, to the first client device, the translation of the first audio transmission in the target language to be presented to a user at the first client device.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a continuation application of U.S. patentapplication Ser. No. 16/599,009, entitled “METHOD AND SYSTEM FORPROCESSING AUDIO COMMUNICATIONS OVER A NETWORK” filed on Oct. 10, 2019,which is a continuation application of PCT/CN2017/109210, entitled“METHOD AND SYSTEM FOR PROCESSING AUDIO COMMUNICATIONS OVER A NETWORK”filed on Nov. 3, 2017, both of which are incorporated by reference intheir entirety.

FIELD OF THE TECHNOLOGY

The present disclosure relates to the field of Internet technologies,and in particular, to a method and system for processing audiocommunications over a network.

BACKGROUND OF THE TECHNOLOGY

The development of Internet technologies along with real-time audio andvideo communications over a network makes communication between peopleextremely convenient. When people communicate using the same language,speech audio captured at both ends of the communication channel can betransmitted in a duplex manner, and be output at the receiving ends withno substantial delay. However, sometimes, people in the communicationsession use different languages, and real-time translation is needed inorder to help the people communicate effectively. Sometimes, thelanguage that are used are not necessarily specified beforehand, andsetting up a translation preference in an ad hoc manner can be timeconsuming and cumbersome, which negatively affects user experience.

SUMMARY

As discussed in the background, manually set up a translation preferencebefore an audio/video communication session is established may work wellfor some scenarios, but cannot address the problem with unforeseentranslation needs or impromptu communications with others whose languagepreferences are yet unknown. For example, in a group conference scenarioor customer support scenario, the speakers in the group conference mayprefer to use different languages and the languages may not be knownbefore the communication session is established or before eachparticipant speaks. Furthermore, the languages that are spoken in acommunication can change in a relatively unpredictable way, whendifferent people speak using the same client device at different timesduring the communication session. Trying to manually adjust thetranslation preferences (e.g., manually specifying the source and targetlanguage) after the communication session has already started and afterthe users have started speaking cause unnecessary delays and disruptionsto the communications between the users. The solutions disclosed hereinmay address the above deficiencies of the present technology.

As disclosed herein, in some embodiments, a method of processing audiocommunications over a social networking platform, comprising: at a severthat has one or more processors and memory, wherein, through the server,a first client device has established an audio and/or videocommunication session with a second client device over the socialnetworking platform: receiving a first audio transmission from thesecond client device, wherein the first audio transmission is providedby the second client device in a source language that is distinct from adefault language associated with the first client device; obtaining oneor more current user language attributes for the first client device,wherein the one or more current user language attributes are indicativeof a current language that is used for the audio and/or videocommunication session at the first client device; in accordance with adetermination that the one or more current user language attributessuggest a target language that is currently used for the audio and/orvideo communication session at the first client device is distinct fromthe default language associated with the first client device: obtaininga translation of the first audio transmission from the source languageinto the target language; and sending, to the first client device, thetranslation of the first audio transmission in the target language,wherein the translation is presented to a user at the first clientdevice.

In some embodiments, a computing device (e.g., server system 108, 204,FIGS. 1, 2; client devices 104, 200, 202, FIGS. 1 and 2; or acombination thereof) includes one or more processors and memory storingone or more programs for execution by the one or more processors, theone or more programs include instructions for performing, or controllingperformance of, the operations of any of the methods described herein.In some embodiments, a non-transitory computer readable storage mediumstoring one or more programs, the one or more programs comprisinginstructions, which, when executed by a computing device (e.g., serversystem 108, 204, FIGS. 1, 2; client devices 104, 200, 202, FIGS. 1 and2; or a combination thereof) with one or more processors, cause thecomputing device to perform, or control performance of, the operationsof any of the methods described herein. In some embodiments, a computingdevice (e.g., server system 108, 204, FIGS. 1, 2; client devices 104,200, 202, FIGS. 1 and 2; or a combination thereof) includes means forperforming, or controlling performance of, the operations of any of themethods described herein.

Various advantages of the present application are apparent in light ofthe descriptions below.

BRIEF DESCRIPTION OF THE DRAWINGS

The aforementioned features and advantages of the disclosed technologyas well as additional features and advantages thereof will be moreclearly understood hereinafter as a result of a detailed description ofpreferred embodiments when taken in conjunction with the drawings.

To describe the technical solutions in the embodiments of the presentdisclosed technology or in the prior art more clearly, the followingbriefly introduces the accompanying drawings required for describing theembodiments or the prior art. Apparently, the accompanying drawings inthe following description show merely some embodiments of the presentdisclosed technology, and persons of ordinary skill in the art may stillderive other drawings from these accompanying drawings without creativeefforts.

FIG. 1 is a block diagram of a server-client environment in accordancewith some embodiments.

FIGS. 2A-2B are block diagrams illustrating an audio and/or videocommunication session between a first client device and a second clientdevice established via a server and over the network, in accordance withsome embodiments.

FIGS. 3-5 are communication time sequence charts for the interactionsbetween a first client device, a second client device, and a serverduring an audio and/or video communication session over a network, inaccordance with some embodiments.

FIGS. 6A-6G illustrate a flowchart diagram of a method of processingaudio communication in accordance with some embodiments.

FIGS. 7A-7F illustrate a flowchart diagram of a method of processingaudio communication in accordance with some embodiments.

FIG. 8 is a block diagram of a client device in accordance with someembodiments.

FIG. 9 is a block diagram of a server system in accordance with someembodiments.

Like reference numerals refer to corresponding parts throughout theseveral views of the drawings.

DESCRIPTION OF EMBODIMENTS

Reference will now be made in detail to embodiments, examples of whichare illustrated in the accompanying drawings. In the following detaileddescription, numerous specific details are set forth in order to providea thorough understanding of the subject matter presented herein. But itwill be apparent to one skilled in the art that the subject matter maybe practiced without these specific details. In other instances,well-known methods, procedures, components, and circuits have not beendescribed in detail so as not to unnecessarily obscure aspects of theembodiments.

The following clearly and completely describes the technical solutionsin the embodiments of the present application with reference to theaccompanying drawings in the embodiments of the present application.Apparently, the described embodiments are merely a part rather than allof the embodiments of the present application. All other embodimentsobtained by persons of ordinary skill in the art based on theembodiments of the present application without creative efforts shallfall within the protection scope of the present application.

As shown in FIG. 1, data processing for a real-time audio/videocommunication platform is implemented in a server-client environment 100in accordance with some embodiments. In accordance with someembodiments, server-client environment 100 includes client-sideprocessing 102-1, 102-2, 102-3 (hereinafter “client-side modules 102”)executed on a client device 104-1, 104-2, 104-3 and server-sideprocessing 106 (hereinafter “server-side module 106”) executed on aserver system 108. Client-side module 102 communicates with server-sidemodule 106 through one or more networks 110. Client-side module 102provides client-side functionalities for the social networking platformand communications with server-side module 106. Server-side module 106provides server-side functionalities for the social networking platformfor any number of client modules 102 each residing on a respectiveclient device 104.

In some embodiments, server-side module 106 includes one or moreprocessors 112 (e.g., processors 902 in FIG. 9), session databases 114,user databases 116, an I/O interface 118 to one or more clients, and anI/O interface 120 to one or more external services. I/O interface 118 toone or more clients facilitates the client-facing input and outputprocessing for server-side module 106. Session database 114 storespreset preferences for communication sessions (e.g., virtual conferencerooms) that users have established, and user database 116 stores userprofiles for users of the communication platform. I/O interface 120 toone or more external services facilitates communications with one ormore external services 122 (e.g., web servers or cloud-based serviceproviders such as file sharing and data storage services).

Examples of client device 104 include, but are not limited to, ahandheld computer, a wearable computing device, a personal digitalassistant (PDA), a tablet computer, a laptop computer, a desktopcomputer, a cellular telephone, a smart phone, an enhanced generalpacket radio service (EGPRS) mobile phone, a media player, a navigationdevice, a game console, a television, a remote control, a point of sale(POS) terminal, vehicle-mounted computer, an ebook reader, or acombination of any two or more of these data processing devices or otherdata processing devices.

Examples of one or more networks 110 include local area networks (LAN)and wide area networks (WAN) such as the Internet. One or more networks110 are, optionally, implemented using any known network protocol,including various wired or wireless protocols, such as Ethernet,Universal Serial Bus (USB), FIREWIRE, Long Term Evolution (LTE), GlobalSystem for Mobile Communications (GSM), Enhanced Data GSM Environment(EDGE), code division multiple access (CDMA), time division multipleaccess (TDMA), Bluetooth, Wi-Fi, voice over Internet Protocol (VoIP),Wi-MAX, or any other suitable communication protocol.

Server system 108 is implemented on one or more standalone dataprocessing apparatuses or a distributed network of computers. In someembodiments, server system 108 also employs various virtual devicesand/or services of third party service providers (e.g., third-partycloud service providers) to provide the underlying computing resourcesand/or infrastructure resources of server system 108. In someembodiments, server system 108 includes, but is not limited to, ahandheld computer, a tablet computer, a laptop computer, a desktopcomputer, or a combination of any two or more of these data processingdevices or other data processing devices.

Server system 108 also implements various modules for supportingreal-time audio/video communications such as communications in an onlinevirtual conference room by multiple users located at differentlocations, including audio/video service module 124, speech-to-textmodule 126, and translation service module 128, etc.

Server-client environment 100 shown in FIG. 1 includes both aclient-side portion (e.g., client-side module 102) and a server-sideportion (e.g., server-side module 106). In some embodiments, dataprocessing is implemented as a standalone application installed onclient device 104. In addition, the division of functionalities betweenthe client and server portions of client-server environment 100 can varyin different embodiments. For example, in some embodiments, client-sidemodule 102 is a thin-client that provides only user-facing input andoutput processing functions, and delegates all other data processingfunctionalities to a backend server (e.g., server system 108). Althoughmany aspects of the present technology are described from theperspective of the server, the corresponding actions performed by theclient device would be apparent to ones skilled in the art without anycreative efforts. Furthermore, some aspects of the present technologymay be performed by the server, the client device, or the server and theclient cooperatively.

Attention is now directed towards embodiments of user interfaces andassociated processes that may be implemented on a client device 104.

FIGS. 2A-2B are block diagrams illustrating an audio and/or videocommunication session between a first client device (e.g., client deviceA) and a second client device (e.g., client device B) established via aserver and over the network, in accordance with some embodiments.

As shown in FIG. 2A, in some embodiments, a user A of the client deviceA 200 (e.g., client device 104-1 in FIG. 1) (e.g., a smart phone orcomputer) needs to have a conversation via an audio and/or videocommunication session with the user B of the client device B 202 (e.g.,client device 104-2). The client device A sends an audio/videocommunication request (e.g., via a client-side module 102-1) to thesever 204 (e.g., server system 108). In response to receiving therequest, the server transmits the request to the client device B. Whenthe client device B receives the request, a call prompt is optionallydisplayed on the client device B (e.g., in a user interface of theclient-side module 102-2). If user B accepts the call request (e.g.,when the “accept” button 206 is selected in the user interface shown onclient device B), an indication that the user B has accepted theaudio/video communication request sent by the client device A is sent touser A. For example, the client device B sends an accept instruction tothe server. When the server received the accept instruction, the serverestablishes an audio/video communication session that supportsaudio/video transmission between the client device A to the clientdevice B. In some embodiments, the server provisions the services (e.g.,audio/video transmission services, speech-to-text service, translationservice, file sharing service, etc.). In some embodiments, if the user Brefuses the audio/video communication request (e.g., the “Reject” button207 is selected), the server terminates the request and sends a responseto the client device A indicating that the call request has beendeclined.

FIG. 2B shows an exemplary audio and/or video communication sessionbetween the client device A and the client device B, after thecommunication session has been established (e.g., in the manner shown inFIG. 2A). Although in the communication session was established by oneof the participants (e.g., user A), the example exchange shown in FIG.2B can be in either direction, with the roles of the two devicesreversed.

In one example, firstly the user B, via the client device B,communicates with the user A. The client device B receives a continuousspeech input spoken in a first source language from the user B (e.g. theuser B says “How are you!” in English) and/or captures the images of theuser B (e.g., captures the facial image of the user B via a camera 213on the client device B) who is in front of the client device B. Theclient device B transmits the audio and/or video that has been capturedas one or more transmissions (e.g., packets, messages, etc.) or a datastream to the client device A (e.g. shown as first audio/videotransmission 215) to the server. The first audio/video transmissionincludes the received continuous speech input from the user B and thecaptured image stream. In some embodiments, the communication sessionbetween the client device A and B is only an audio communication sessionwithout the video communication.

In some embodiments, shown in the FIG. 2B, when the server has receivedthe first audio/video transmission sent by an audio/video service module217 of the client device B, the server sends the first videotransmission to the client device A and sends the first audiotransmission to a speech recognition service module 219 (e.g., a speechrecognition service module provided by the server or a third-partyservice provider). The speech recognition service module 219 performsspeech to text processing on the first audio transmission to generate atext string in the source language and sends the text string in thesource language to a translation service module 221 (e.g., a translationmodule provided by the server or a third-party service provider). Thetranslation service module 221 translates the text string generated fromthe first video transmission from the source language (e.g., a sourcelanguage type received from the client device B or otherwise determinedby the server) into a text string in a target language (e.g., a targetlanguage type received from the client device A or otherwise determinedby the server), sends the translation of the text string generated fromthe first audio transmission, and also, optionally, sends the originalfirst audio transmission and the text string in the source language tothe client device A. In some embodiments, the translation is in atextual form. In some embodiments, the translation is adapted to voiceform. In some embodiments, both the textual form and the voice form aresent together to the client device A. In some embodiments, the originalaudio of the first audio transmission is removed and replaced with anaudio translation. In some embodiments, the textual translation is addedto the original audio transmission as a closed caption. In someembodiments, the text string in the source language is added as a closedcaption. When the client device A receives the translation of the firstaudio transmission and the first audio transmission and the text stringin the source language, the client device A presents the translation,and optionally, the text string and the audio in the source language tothe user A (e.g., the translation is displayed on the display 208 of theclient device A (e.g., shown as the translation “how are you” in Chinese223 and the source language “how are you” in English 225 displayed onthe display screen 208).

In some embodiments, when the client device A and the client device Bhave established a real-time video communication session over theInternet, there is a small display frame for presenting the graphic ofthe user A (e.g., shown as 227) on the client device A and a largedisplay frame 229 for presenting the graphic of the user B (e.g., shownas 229) on the client device A. In some embodiments, an indication ofthe currently identified source language for each of the device isdisplayed in association with the display frame for the devices. Forexample, the display frame 227 at the client device A has an indicationindicating that Chinese is the currently used source language at theclient device A, and the display frame 229 at the client device A has anindication indicating that English is the currently used source languageat the client device B.

In some embodiments, there is a default language specified at the clientdevice A. For example, in some embodiments, a default language for theclient device A is automatically selected for the client device A by theserver or is a preferred language that is already specified by the userA in a language setting of the client device A before the start of thevideo communication session. For an example, the user A is a Chineseuser, and he may pre-specify the default language of his device to beChinese in the language setting of the client device A. For anotherexample, the default language is specified by the server when theapplication is set up. In some embodiments, the default language has notbeen set by the user A or the server by the time that the audio/videocommunication session is established.

In some embodiments, when the translation service module detects thatthe source language included in the first audio transmission from theclient device B is different from the default language of the clientdevice A, the translation service module or the server obtains one ormore user language attributes (e.g., facial features of the user,geolocation information of the client device A, audio message receivedlocally at the client device A, etc.) of the user A from the clientdevice A and translates the speech in the source language into a targetlanguage that is determined according to the user language attributes ofthe client device A. The target language is sometimes different from thedefault language the is pre-specified for the client device before thecommunication session is established, and the determination of thetarget language is based on the real-time gathering of the user languageattributes after the communication session is established or while thecommunication session is being established. For example, the user Busing the source language such as English speaks at the client device B,the default language is already specified as Japanese for the clientdevice A by a prior user input in a settings interface. However, theserver determines that the current user A may not a Japanese speaker orwould not be able to understand Japanese according to the determinationof the user language attributes from the client device A. The serverinstead determines that the user at client device A is aChinese-speaking user and understands Chinese. Then the translationservice module translates the speech received at client device B usingEnglish as the source language and Chinese as the target language.

In some embodiments, the client device A obtains the one or more currentuser language attributes for the client device A by obtaining facialfeatures of the user A at the client device A, and obtaining geolocationinformation of the client device A. The facial features optionallyinclude ethnic features (e.g., eye color, facial structure, hair color,etc.) that are indicative of an ethnicity or nationality of the user A,or the facial features for determining whether the user A that iscurrently using the client device A is different from the user that setsup the default language for the client device A. The geolocationinformation of the first client device optionally includes currentlocation of the client device A and historic location(s) for a presetperiod of time before the current time, or a pre-stored location of theclient device A. For example, in some embodiments, the client device Acaptures the facial features of the user A who is speaking and/orlistening at the client device A, obtains the current geolocationinformation of the client device A.

In some embodiments, the facial features of the user at the clientdevice A and the geolocation information of the client device A areutilized in combination to suggest the target language (e.g., Chinese)as the current language that is used for the client device A instead ofthe default language (e.g., Japanese) that is associated with the clientdevice A. For example, the client device A determines based on thefacial features that the current user A is Caucasian, and determinesthat the current location of the client device A is in North America.Based on the combination of the ethnicity and geolocation information,the client device A suggests that the current language used at theclient device A may be English, and thus uses English as the targetlanguage for translation for the user currently using client device A.In some embodiments, if a default language is already specified for theclient device A by a prior user input in a settings interface, theclient device A requires that at least one of the currently collectedfacial features and/or geolocation information indicates that thecurrent user is different from the user that specified the defaultlanguage for the client device A. In some embodiments, the translationfrom the source language to the target language is provided to the userat the client device A only after the client device A has received theconfirmation that the suggested target language is a correct suggestion.

In some embodiments, the determination of the target language isperformed by the server of the communication session, after the clientdevice A collects the facial features and geolocation information andsends the collected information to the server. In some embodiments, thetarget language is determined based on a data model that is trained onthe server, and then stored at the client device A. In some embodiments,before the client device A determines that the target language is toreplace the default language as a recognized current language used atthe client device A, the client device A presents a request forconfirmation from the user at the client device A.

In some embodiments, the client device A determines the target languagelocally without transmitting the facial features and geolocationinformation to the server, which helps to protect user privacy andreduce server load.

In some embodiments, the client device A obtains the one or more currentuser language attributes for the client device A by obtaining an audioinput received locally at the client device A during the audio and/orvideo communication session. The audio input that is received locally atthe client device A is analyzed linguistically (e.g., using a linguisticmodel or a speech model for determining a languages that is spoken) tosuggest the target language as the current language that is used at theclient device A. For example, the client device A or the severrecognizes the language type of the audio input as English anddetermines that the current language used at the client device A isEnglish, and the client device A or the sever will suggest that thetarget language for the client device A is English, as opposed toincorrectly treating the default language that is currently associatedwith the client device A as the current language used at the clientdevice A.

FIG. 3 is a communication time sequence chart for the interactionsbetween the client device A establishing an audio and/or videocommunication session with the second client device B through the serverover the network. In some embodiments, firstly the client device A sendsan audio/video communication session request to the second client deviceB through the server (e.g., or directly and not through the server)shown from 302 to 304. When the client device B accepts the request(shown as 306), the server establishes a connection of the audio and/orvideo communication session between the client device A and the clientdevice B (shown as 308). The steps from 302 to 308 are also describedwith respect to FIG. 2A.

When the client device B sends the first audio/video transmission spokenin a source language of the user B to the server (shown as 310), theserver performs speech-to-text recognition on the first audiotransmission in the source language to generate a textual representationin the source language of the client device B (shown as 312). Before thesever translates the textual string in the source language into atextual string in a target language, the server determines whether thesource language of the client device B is distinct from the defaultlanguage which have been automatically selected for the client device Aby the server or a preferred language that is already specified by auser in a language setting of the client device A before the start ofthe video communication session. If the source language is determined tobe different from the default language of the client device A (shown as314), the server translates the first audio transmission from the sourcelanguage into a target language that is determined according to thecurrent user language attributes (e.g., such described with respect toFIGS. 2A and 2B) of the client device A (shown as 316). In someembodiments, if the source language of client device B is the same asthe default language of the client device A, the server will not performany translation.

After the server has completed the translation of the first audiotransmission from the source language to the target language, the serversends textual representations of the translation of the first audiotransmission and the original audio in the source language to the clientdevice A (shown as 322). The client device A receives the textualrepresentations of the translation of the first audio transmission andthe original audio in the source language and presents the textualrepresentations on the display (such as shown 223 and 225 in FIG. 2B).

In some embodiments, the server generates a simulated first audiotransmission in accordance with the vocal characteristics of the user Bthat includes the translation of the first audio transmission, and sendsthe simulated first audio transmission to the client device A (shown as324 and 326). For example, the server obtains the vocal characteristicsof a voice in the first audio transmission. The vocal characteristicsoptionally include a voiceprint, or a predefined set of characteristicssuch as frequencies, tone, pitch, duration, amplitude, etc. of aperson's voice. In some embodiments, the simulated first audiotransmission is generated using a generic voice of a man, a woman, or achild, depending on whether the vocal characteristics obtained from thefirst audio transmission indicate that the original first audiotransmission was spoken by a man, a woman, or a child. In someembodiments, the simulated first audio transmission closely mimics thevoice of the original first audio transmission.

In some embodiments, the server automatically switches between usinggeneric voices or specially simulated voices to speak the translationdepending on server load (e.g., processing power, memory, and networkbandwidth), and the rates by which the audio transmissions are beingreceived at the client devices. For example, when the server load isabove a predefined threshold, the simulated first audio transmission isprovided in a voice that is generated in accordance with a small subsetof the vocal characteristics (e.g., the primary frequencies and pitchesonly) of the original first audio transmission; and when server load isbelow the predefined threshold, the simulated first audio transmissionis provided in a voice that is generated in accordance with a largersubset of the vocal characteristics (e.g., a wider range of frequencies,pitches, amplitudes, etc.) of the original first audio transmission.

In some embodiments, after received the simulated first audiotransmission, the client device A presents the textual representation ofthe translation on the display and output the simulated first audiotransmission for the user A at the client device A. For example, thesimulated first audio transmission in the target language is played inlieu of the original first audio transmission in the source language atthe client device A. In some embodiments, playback of a segment of thevideo transmission at the client device A is delayed such that the videotransmission received from the second client device is synchronized withplayback of the simulated first audio transmission at the client deviceA.

FIG. 4 is an example of the processing occurring at the client device Bwhen sending audio transmissions to the client device A.

In some embodiments, when the user B speaks at the client device B(e.g., as shown in FIG. 2B), the client device B detects continuousspeech input from the user B located at the client device B and marks afirst start time (e.g. the start time st1 in FIG. 4) of the continuousspeech input as a beginning of a first audio paragraph detected at theclient device B. When the client device B detects a first predefinedbreak (e.g. break bk1 in FIG. 4) in the continuous speech input, theclient device marks a first end time (e.g. the end time et1 in FIG. 4)of the first predefined break bk1 as an end of the first audioparagraph. In some embodiments, the continuous speech input is definedas a continuous voice input stream that includes only short breaks ofless than a predefined speech input termination time threshold. Thecontinuous speech input is considered terminated when no voice input isdetected for more than the speech input termination time threshold. Thespeech input termination time threshold is longer than the predefinedtime threshold for identifying breaks in the continuous speech input;and the time threshold for detecting breaks in the continuous speechinput is longer than the estimated natural pauses between words of asentence, or between two clauses of a sentence.

In some embodiments, after detecting the first predefined break bk1 inthe continuous speech input, the client B converts the first audioparagraph into a first audio packet and sends the first audio packet tothe server (shown as 412). Then the server performs speech to textrecognition on the first audio packet and translates the first audioparagraph from the source language into the target language (shown as414). The server sends the translation of the first audio paragraph tothe client device A for presenting the translation at the client deviceA (shown as 416 and 418). In some embodiments, an audio package is asegment of audio input stream that is encoded and compressed accordingto a predefined format, such as a RAR (Roshal ARchive) file.

In some embodiments, while generating the first audio packet and sendingthe first audio packet (at the step 412), the client device B continuesto detect the continuous speech input from the user located at theclient device B. At least a portion of the continuous speech input thatis detected while generating and sending the first audio packet isincluded in the first audio transmission as a second portion of thefirst audio transmission. For example, when continuing to detecting thecontinuous speech input, the client device B detects a second predefinedbreak (e.g., the break bk2 in FIG. 4 at the end of the second audioparagraph para2) in the continuous speech input at the client device B.The client device B marks the end time of the first predefined break bk1as a second start time (e.g., the start time st2 in FIG. 4 for thepara2) of a second audio paragraph and marks a second end time (e.g.,the end time et2 in FIG. 4 for the para 2) of the second predefinedbreak as an end of the second audio paragraph detected at the clientdevice B. The client device B generates a second audio packet to includethe second audio paragraph, and sends the second audio packet to theclient device A (e.g., shown from 422 to 428 in FIG. 4).

The above process continuous and more audio paragraphs are detected inthe continuous speech input, each audio paragraph being marked with arespective start timestamp (and optionally, a respective end timestamp),converted into a respective audio packet, and sent to the client deviceA sequentially according to the respective start timestamps thereof, aslong as the termination of the continuous speech input has not beendetected. Thus, two or more audio paragraphs including the first audioparagraph and the second audio paragraph are translated from the sourcelanguage of the first audio transmission to the target languagedetermined for the client device A for presentation at the client deviceA. For example, the first audio transmission includes one or moresentences received in separate audio packets that arrive separately atthe server with different headers and timestamps, each of which istranslated separately from the source language of the first audiotransmission to the target language determined for the client device Aand the translations are presented at the client device A.

In some embodiments, while capturing the continuous speech input at theclient device B, the client device B continuously captures video using acamera at the client device B and marks the continuously captured videowith the respective start timestamps (and optionally, the respective endtimestamps) of the two or more audio paragraphs, wherein the respectivestart timestamps (and, optionally the respective end timestamps) areused by the client device A (or the server) to synchronize presentationof the video and respective translations of the two or more audioparagraphs at the client device A.

FIG. 5 is a time sequence chart of an example server-side processingduring the audio and/or video communication session between the clientdevice A and the client device B over the network. The server 204includes an audio/video server 502, a speech recognition server 504 anda translating server 506, in some embodiments. In some embodiments, theservers 502, 504, and 506 are replaced by submodules of the server 204that provide the functions.

In some embodiments, during the audio and/or video communicationsession, the audio/video server receives a first audio/videotransmission in a source language spoken by the user B from the clientdevice B (shown as 511) and sends the first audio transmission to thespeech recognition server (shown as 513). The speech recognition serverrecognizes the first audio transmission and generates a textualrepresentation in the source language (shown as 515) in accordance witha speech recognition library or a language model stored at the speechrecognition server, and sends the textual representation in the sourcelanguage to the translating server (shown as 517) for preparing totranslate the textual representation from the source language to atarget language that has been determined for the client device A. Thenthe translating server sends a target language request to theaudio/video server (shown as 519) for determining whether thetransmission needs to be translated, and if so, to what target language(e.g., determining whether the source language is the same as the targetlanguage or the default language).

The audio/video server determines the user language attributes from theclient device A and suggests a target language as a current languagethat is used at the client device A (shown as 521). In some embodiments,the audio/video server receives the facial features of the current userat client device A and a current geolocation of the client device A, anddetermines a relationship between the facial features of the currentuser and the current geolocation of the client device A (e.g., whetherthe facial features suggest an ethnicity or nationality that issufficiently correlated (e.g., in accordance with predefined criteria)with the current geolocation of the first client device). According to adetermination that the relationship meets predefined criteria, theaudio/video server suggests the target language. For example, if thefacial feature and the geolocation are both correlated with the samelanguage, then that language is suggested as the target language. Insome embodiments, the audio/video server receives an audio message(e.g., an oral instruction from the user at the client device A or aspeech input received from the user A as part of the audio/videocommunication session) that has been received locally at the clientdevice A and analyzes linguistic characteristics of the audio message.Then according to a result of analyzing the linguistic characteristicsof the audio message, the audio/video server may suggest a targetlanguage for use by the translating server.

The audio/video server sends the suggested target language to thetranslating server (shown as 523). Then the translating servertranslates the first audio transmission from the source language intothe target language suggested by the audio/video server and sends thetranslation of the first audio transmission to the client device A forpresenting the result of the translation at the client device A (e.g.,both the textual representation and the audible representation of thetranslation is provided at the first client device).

In some embodiments, the speech recognition server recognizes the vocalcharacteristics of a voice in the first audio transmission (shown as531) and generates a simulated first audio transmission according to thevocal characteristics of a voice in the first audio transmission (shownas 533) and the translation of the first audio transmission. The vocalcharacteristics may include a voiceprint, or a predefined set ofcharacteristics such as frequencies, tone, pitch, duration, amplitude,etc. of a person's voice. After the simulated first audio transmissiongenerated by the speech recognition server, the speech recognitionserver sends the simulated first audio transmission to the client deviceA (shown as 535) for presenting with the translation of the simulatedfirst audio transmission.

FIGS. 6A-6G illustrate a flowchart diagram of a method 600 of providingaudio communication session between two or more client devices. In someembodiments, method 600 is performed by a first client device, inconjunction with a server, or independently of a server. For example, insome embodiments, method 600 is performed by client device 104-1 (e.g.,client-side module 102-1), in conjunction with server system 108 (FIGS.1-2) or a component thereof (e.g., server-side module 106, FIGS. 1-2).In some embodiments, method 600 is governed by instructions that arestored in a non-transitory computer readable storage medium and theinstructions are executed by one or more processors of the client andserver systems. Optional operations are indicated by dashed lines (e.g.,boxes with dashed-line borders).

In method 600 of processing audio communications over a network, thefirst client device has established an audio and/or video communicationsession with a second client device over the network (e.g., a user ofthe first device and a user of the second device have established areal-time video conference over the Internet through a server of anonline teleconference service provider). During the audio and/or videocommunication session: the first client device receives (602) a firstaudio transmission from the second client device (e.g., through a serverof the video conference service), wherein the first audio transmissionis provided by the second client device in a source language that isdistinct from a default language associated with the first client device(e.g., a default language that is automatically selected for the firstclient device by the server or a preferred language that is alreadyspecified by a user in a language setting of the first client devicebefore the start of the video communication session). The first clientdevice obtains (604) one or more current user language attributes (e.g.,facial features of the user, geolocation information, audio messagereceived locally, etc.) for the first client device, wherein the one ormore current user language attributes are indicative of a currentlanguage that is used for the audio and/or video communication sessionat the first client device. In accordance with a determination that theone or more current user language attributes suggest a target languagethat is currently used for the audio and/or video communication sessionat the first client device, and in accordance with a determination thatthe target language is distinct from the default language associatedwith the first client device (606): the first client device obtains(608) a translation of the first audio transmission from the sourcelanguage from the source language into the target language; and thefirst client device presents (610) the translation of the first audiotransmission in the target language to a user at the first clientdevice. For example, in some embodiments, the target language issuggested by the first client device. In some embodiments, the targetlanguage is suggested by the server. In some embodiments, the firstclient device determines whether or not the target language is the sameas the default language associated with the first client device. In someembodiments, the server makes the determination regarding whether thetarget language is the same as the default language associated with thefirst client device. In some embodiments, the translation of the firstaudio transmission in the target language is presented as a textualoutput at the first client device. In some embodiments, the translationof the first audio transmission is provided as an audio output at thefirst client device. In some embodiments, both the textualrepresentation and the audible representation of the translation isprovided at the first client device (e.g., synchronized to a portion thevideo that corresponds to the first audio transmission.).

In some embodiments, obtaining the one or more current user languageattributes for the first client device (e.g., step 604) includes (612)obtaining facial features of the user at the first client device (e.g.,obtaining ethnic features (e.g., eye color, facial structure, haircolor, etc.) that are indicative of an ethnicity or nationality of theuser, or obtaining facial features for determining whether the user thatis currently using the first client device is different from the userthat sets up the default language for the first client device) andobtaining geolocation information of the first client device (e.g.,including current location of the first client device and historiclocation(s) for a preset period of time, or a pre-stored location of thefirst client device). The facial features of the user at the firstclient device and the geolocation information of the first client deviceare utilized in combination (614) to suggest the target language as thecurrent language that is used for the first client device instead of thedefault language that is associated with the first client device. Forexample, in some embodiments, the first client device captures thefacial features of the current user who is speaking and/or listening atthe first client device, obtains the current geolocation information ofthe first client device. In some embodiments, the first client devicedetermines based on the facial features that the current user may beCaucasian, and determines that the current location of the first clientdevice is in North America. Based on the combination of the ethnicityand geolocation information, the first client device suggests that thecurrent language used at the first client device may be English. In someembodiments, if a default language is already specified for the firstclient device by a prior user input in a settings interface, the firstclient device requires that at least one of the currently collectedfacial features and/or geolocation information indicates that thecurrent user is different from the user that specified the defaultlanguage for the first client device. In some embodiments, thedetermination of the target language is performed by the server of thecommunication session, after the first client device collects the facialfeatures and geolocation information and sends the collected informationto the server. In some embodiments, the first client device determinesthe target language locally without transmitting the facial features andgeolocation information to the server, which helps to protect userprivacy and reduce server load. In some embodiments, the target languageis determined based on a data model that is trained on the server, andthen stored at the first client device. In some embodiments, before thefirst client device determines that the target language is to replacethe default language as a recognized current language used at the firstclient device, the first client device presents a request forconfirmation from the user at the first client device. In someembodiments, the translation from the source language to the targetlanguage is provided to the user at the first client device only afterthe first client device has received the confirmation that the suggestedtarget language is a correct suggestion.

In some embodiments, obtaining the one or more current user languageattributes for the first client device (e.g., step 604) includes (616)obtaining an audio input received locally at the first client deviceduring the audio and/or video communication session. The audio inputthat is received locally at the first client device is analyzedlinguistically (618) (e.g., using a linguistic model or a speech modelfor determining a languages that is spoken) to suggest the targetlanguage as the current language that is used at the first clientdevice. For example, in some embodiments, the first client device or thesever recognizes the language type of the audio input as English anddetermines that the current language used at the first client device isEnglish, and the first client device or the sever will suggest that thetarget language for the first client device is English, as opposed toincorrectly treating the default language that is currently associatedwith the first client device as the current language used at the firstclient device.

In some embodiments, the first client device obtains (622) vocalcharacteristics (e.g., a voiceprint, or a predefined set ofcharacteristics such as frequencies, tone, pitch, duration, amplitude,etc. of a person's voice) of a voice in the first audio transmission;and the first client device, according to the vocal characteristics ofthe voice in the first audio transmission, generates (624) a simulatedfirst audio transmission that includes the translation of the firstaudio transmission spoken in the target language in accordance with thevocal characteristics of the voice of the first audio transmission. Forexample, in some embodiments, the simulated first audio transmission isgenerated using a generic voice of a man, a woman, or a child, dependingon whether the vocal characteristics obtained from the first audiotransmission indicate that the original first audio transmission wasspoken by a man, a woman, or a child. In some embodiments, the simulatedfirst audio transmission closely mimics the voice of the original firstaudio transmission. In some embodiments, the system (e.g., the server)automatically switches between using generic voices or speciallysimulated voices to speak the translation depending on server load(e.g., processing power, memory, and network bandwidth), and the rate bywhich the audio transmissions are being received at the first clientdevice. For example, when the server load is above a predefinedthreshold, the simulated first audio transmission is provided in a voicethat is generated in accordance with a small subset of the vocalcharacteristics of the original first audio transmission; and whenserver load is below the predefined threshold, the simulated first audiotransmission is provided in a voice that is generated in accordance witha larger subset of the vocal characteristics of the original first audiotransmission.

In some embodiments, presenting the translation of the first audiotransmission in the target language to a user at the first client device(e.g., step 610) includes: presenting (626) a textual representation ofthe translation of the first audio transmission in the target languageto the user at the first client device; and presenting (628) a simulatedfirst audio transmission that is generated in accordance with vocalcharacteristics of a voice in the first audio transmission (e.g., thesimulated first audio transmission in the target language is played inlieu of the original first audio transmission in the source language atthe first client device). In some embodiments, playback of a segment ofthe video transmission at the first client device is delayed such thatthe video transmission received from the second client device issynchronized with playback of the simulated first audio transmission atthe first client device.

In some embodiments, during the audio and/or video communicationsession: the first client device detects (632) continuous speech input(e.g., a continuous speech input is defined as a continuous voice inputstream that includes only short breaks of less than a predefined speechinput termination time threshold. A continuous speech input isconsidered termination when no voice input is detected for more than thespeech input termination time threshold. The speech input terminationtime threshold is longer than the predefined time threshold foridentifying breaks in the continuous speech input; and the timethreshold for detecting breaks in the continuous speech input is longerthan the estimated natural pauses between words of a sentence, orbetween two clauses of a sentence.) from a user located at the firstclient device. The first client device marks (634) a start time of thefirst continuous speech input as a beginning of a first audio paragraphdetected at the first client device. The first client device detects(636) a first predefined break in the continuous speech input at thefirst client device (e.g., detecting an absence of a sufficient level ofspeech input in the continuous audio input stream at the first clientdevice for at least a threshold amount of time). In response todetecting the first predefined break in the continuous speech input, thefirst client device marks a start time of the first predefined break asan end of the first audio paragraph detected at the first client device,wherein the first audio paragraph is included in a second audiotransmission that is sent to the second client device.

In some embodiments, after detecting the first predefined break in thecontinuous speech input, the first client device generates (642) a firstaudio packet that includes the first audio paragraph. The first clientdevice sends (644) the first audio packet to the second client device asa first portion of the second audio transmission. While generating thefirst audio packet and sending the first audio packet: the first clientdevice continues (646) to detect the continuous speech input from theuser located at the first client device, wherein at least a portion ofthe continuous speech input that is detected while generating andsending the first audio packet is included in the second audiotransmission as a second portion of the second audio transmission. Forexample, when continuing the detect the continuous speech input, thefirst client device detects a second predefined break in the continuousspeech input at the first client device. The first client device marksthe end time of the first predefined break as a start time of a secondparagraph and marks a start time of the second predefined break as anend of the second audio paragraph detected at the first client device.The first client device generates a second audio packet to include thesecond audio paragraph, and sends the second audio packet to the secondclient device. The above process continuous and more audio paragraphsare detected, converted into audio packets, and sent to the secondclient device, as long as the termination of the continuous speech inputhas not been detected. In some embodiments, two or more audio paragraphsincluding the first audio paragraph and the second audio paragraph aretranslated into the source language of the first audio transmission forpresentation at the second client device. For example, the second audiotransmission include one or more sentences received in separate audiopackets that arrive separately at the server with different headers andtimestamps, each of which is translated separately into the sourcelanguage of the first audio transmission and the translations arepresented at the second client device.

In some embodiments, during the audio and/or video communicationsession: the first client device identifies (648) two or more audioparagraphs in a continuous speech input (e.g., a continuous voice inputstream) at the first client device, each audio paragraph being markedwith a respective start timestamp (and optionally, a respective endtimestamp); the first client device generates (650) a respective audiopacket for each of the two or more audio paragraphs (e.g. an audiopackage is a segment of audio input stream that is encoded andcompressed according to a predefined format, such as a RAR (RoshalARchive) file); and the first client device sends the respective audiopackets for the two or more audio paragraphs to the second client device(e.g., through the server or directly) sequentially according to therespective start time stamps thereof. In some embodiments, the audiopackets are sent to the server responsible for translating the audioparagraphs, without being sent to the second client device. In someembodiments, the transmission of the audio packets (e.g., as separateand discrete files) are independent of the transmission (e.g., bycontinuous streaming) of the audio continuously captured at the firstclient device.

In some embodiments, during the audio and/or video communicationsession: the first client device continuously captures (656) video usinga camera at the first client device, while capturing the continuousspeech input at the first client device; and the first client devicemarks the continuously captured video with the respective starttimestamps (and optionally, the respective end timestamps) of the two ormore audio paragraphs, wherein the respective start timestamps (and,optionally the respective end timestamps) are used by the second clientdevice (or the server) to synchronize presentation of the video andrespective translations of the two or more audio paragraphs at thesecond client device.

It should be understood that the particular order in which theoperations in FIGS. 6A-6G have been described is merely exemplary and isnot intended to indicate that the described order is the only order inwhich the operations could be performed. One of ordinary skill in theart would recognize various ways to reorder the operations describedherein. Additionally, it should be noted that details of other processesdescribed herein with respect to other methods and/or processesdescribed herein are also applicable in an analogous manner to method600 described above.

FIGS. 7A-7F illustrate a flowchart diagram of a method 700 of providingaudio communication session between two or more client devices. In someembodiments, method 600 is performed by a server, in conjunction withtwo or more client devices. For example, in some embodiments, method 600is performed by server 108 in conjunction with client devices 104-1 and104-2 or components thereof (e.g., client-side modules 102, FIGS. 1-2).In some embodiments, method 700 is governed by instructions that arestored in a non-transitory computer readable storage medium and theinstructions are executed by one or more processors of the client andserver systems. Optional operations are indicated by dashed lines (e.g.,boxes with dashed-line borders).

Through a server, a first client device has established an audio and/orvideo communication session with a second client device over the network(e.g., a user of the first device and a user of the second device haveestablished a real-time video conference over the Internet through aserver of an online teleconference service provider). During the audioand/or video communication session: the server receives (702) a firstaudio transmission from the second client device, wherein the firstaudio transmission is provided by the second client device in a sourcelanguage that is distinct from a default language associated with thefirst client device (e.g., a default language that is automaticallyselected for the first client device by the server or a preferredlanguage that is already specified by a user in a language setting ofthe first client device before the start of the audio and/or videocommunication session). The server obtains (e.g., from the first clientdevice, and/or optionally, another server), one or more current userlanguage attributes (e.g., facial features of the user at the firstclient device, geolocation information (e.g., current location and/orrecent locations), audio message received locally at the first clientdevice, etc.) for the first client device, wherein the one or morecurrent user language attributes are indicative of a current languagethat is used for the audio and/or video communication session at thefirst client device. In accordance with a determination that the one ormore current user language attributes suggest a target language that iscurrently used for the audio and/or video communication session at thefirst client device, and in accordance with a determination that thetarget language is distinct from the default language associated withthe first client device (706): the server obtains (708) a translation ofthe first audio transmission from the source language into the targetlanguage; and the server sends (710), to the first client device, thetranslation of the first audio transmission in the target language,wherein the translation is presented to a user at the first clientdevice. For example, in some embodiments, the target language issuggested by the first client device. In some embodiments, the targetlanguage is suggested by the server. In some embodiments, the firstclient device determines whether or not the target language is the sameas the default language associated with the first client device. In someembodiments, the server makes the determination regarding whether thetarget language is the same as the default language associated with thefirst client device. In some embodiments, the translation of the firstaudio transmission in the target language is presented as a textualoutput at the first client device. In some embodiments, the translationof the first audio transmission is provided as an audio output at thefirst client device. In some embodiments, both the textualrepresentation and the audible representation of the translation areprovided at the first client device (e.g., synchronized to portion thevideo that corresponds to the first audio transmission, text pattern oraudio pattern).

In some embodiments, obtaining the one or more current user languageattributes and suggesting the target language that is currently used forthe audio and/or video communication session at the first client device(e.g., step 704) further includes: receiving (712), from the firstclient device, facial features of the current user and a currentgeolocation of the first client device; determining (714) a relationshipbetween the facial features of the current user and the currentgeolocation of the first client device (e.g., whether the facialfeatures suggests a ethnicity or nationality that is sufficientlycorrelated (e.g., in accordance with predefined criteria) with thecurrent geolocation of the first client device); and suggesting (716)the target language according to a determination that the relationshipmeets predefined criteria (e.g., in some embodiments, if the facialfeature and the geolocation are both correlated with the same language,and that language is suggested as the target language).

In some embodiments, obtaining the one or more current user languageattributes and suggesting the target language that is currently used forthe audio and/or video communication session at the first client device(e.g., step 704) further includes: receiving (718), from the firstclient device, an audio message that has been received locally at thefirst client device; analyzing (720) linguistic characteristics of theaudio message received locally at the first client device; andsuggesting (722) the target language that is currently used for theaudio and/or video communication session at the first client device inaccordance with a result of analyzing the linguistic characteristics ofthe audio message.

In some embodiments, the server obtains (732) vocal characteristics(e.g., a voiceprint, or a predefined set of characteristics such asfrequencies, tone, pitch, duration, amplitude, etc. of a person's voice)of a voice in the first audio transmission; and the sever, according tothe vocal characteristics of the voice in the first audio transmission,generates (734) a simulated first audio transmission that includes thetranslation of the first audio transmission spoken in the targetlanguage in accordance with the vocal characteristics of the voice ofthe first audio transmission. In some embodiments, sending, to the firstclient device, the translation of the first audio transmission in thetarget language to a user at the first client device (e.g., step 710)includes: sending (736), to the first client device, a textualrepresentation of the translation of the first audio transmission in thetarget language to the user at the first client device; and sending(738), to the first client device, the simulated first audiotransmission that is generated in accordance with the vocalcharacteristics of the voice in the first audio transmission (e.g., thesimulated first audio transmission in the target language is sent to thefirst client device in lieu of the original first audio transmission inthe source language). In some embodiments, transmission of a segment ofthe video transmission to the first client device is delayed such thatthe video transmission to the first client device is synchronized withtransmission of the simulated first audio transmission to the firstclient device.

In some embodiments, receiving a first audio transmission from thesecond client device (e.g., step 702) further includes: receiving (742)two or more audio packets of the first audio transmission from thesecond client device, wherein the two or more audio packets have beensent from the second client device sequentially according to respectivetimestamps of the two or more audio packets, and wherein each respectivetimestamp is indicative of a start time of a corresponding audioparagraph identified in the first audio transmission. In someembodiments, the two or more audio packets may be received out ofsequence by the server, and the server rearranges the audio packets inaccordance with the timestamps. In some embodiments, the server does notorder the received packets based on their respective timestamps, andinstead, the server only orders the translations of the audio paragraphsin the two or more audio packets based on the respective timestamps ofthe two or more audio packets, after the translations of the at leasttwo of the audio paragraphs have been obtained. In some embodiments, theobtaining the translation of the first audio transmission from thesource language into the target language and sending the translation ofthe first audio transmission in the target language to the first clientdevice (e.g., steps 708 and 710) further comprise: obtaining (744)respective translations of the two or more audio packets from the sourcelanguage into the target language sequentially according to therespective timestamps of the two or more audio packets; and sending(746) a first translation of at least one of the two or more audiopackets to the first client device after the first translation iscompleted and before translation of at least another one of the two ormore audio packets is completed.

In some embodiments, the server receives (748) a first videotransmission while receiving the first audio transmission from the firstclient device, wherein the first video transmission is marked with thesame set of timestamps as the two or more audio packets; and sends (750)the first video transmission and the respective translations of the twoor more audio packets in the first audio transmission with the same setof timestamps to the first client device such that the first clientdevice synchronously present the respective translations of the two ormore audio packets of the first audio transmission and the first videotransmission according to the same set of timestamps. In someembodiments, the server receives a continuous audio stream and acontinuous video stream from the first client device, e.g., through adedicated network connection used for the audio and/or videocommunication session. The server extracts audio paragraphs out of thecontinuous audio stream one by one (e.g., based on detection ofpredefined breaks in the continuous speech input embodied in thecontinuous audio stream). For example, the server generates an audiopacket for each identified audio paragraph and sends the audio packets(e.g., as opposed to the continuous audio stream) to a translationserver or a server-side translation module as the end of the audioparagraph is detected, while the server continues to receive the audioand video streams. In some embodiments, the server transmits the videostream to the second client device as a continuous video stream, andtransmits the translations of the audio packets as audio and textualdata packets to the second client device, where the second client devicesynchronizes the presentation of the video and the translations of theaudio packets. In some embodiments, the server inserts the translationsof the audio packets at appropriate locations of the video stream andsends the video streams to the first client device with the embeddedtranslations.

It should be understood that the particular order in which theoperations in FIGS. 7A-7F have been described is merely exemplary and isnot intended to indicate that the described order is the only order inwhich the operations could be performed. One of ordinary skill in theart would recognize various ways to reorder the operations describedherein. Additionally, it should be noted that details of other processesdescribed herein with respect to other methods and/or processesdescribed herein are also applicable in an analogous manner to method600 described above.

FIG. 8 is a block diagram illustrating a representative client device104 associated with a user in accordance with some embodiments. Clientdevice 104, typically, includes one or more processing units (CPUs) 802,one or more network interfaces 804, memory 806, and one or morecommunication buses 808 for interconnecting these components (sometimescalled a chipset). Client device 104 also includes a user interface 810.User interface 810 includes one or more output devices 812 that enablepresentation of media content, including one or more speakers and/or oneor more visual displays. User interface 810 also includes one or moreinput devices 814, including user interface components that facilitateuser input such as a keyboard, a mouse, a voice-command input unit ormicrophone, a touch screen display, a touch-sensitive input pad, agesture capturing camera, or other input buttons or controls.Furthermore, some client devices 104 use a microphone and voicerecognition or a camera and gesture recognition to supplement or replacethe keyboard. In some embodiments, client device 104 further includessensors, which provide context information as to the current state ofclient device 104 or the environmental conditions associated with clientdevice 104. Sensors include but are not limited to one or moremicrophones, one or more cameras, an ambient light sensor, one or moreaccelerometers, one or more gyroscopes, a GPS positioning system, aBluetooth or BLE system, a temperature sensor, one or more motionsensors, one or more biological sensors (e.g., a galvanic skinresistance sensor, a pulse oximeter, and the like), and other sensors.Memory 806 includes high-speed random access memory, such as DRAM, SRAM,DDR RAM, or other random access solid state memory devices; and,optionally, includes non-volatile memory, such as one or more magneticdisk storage devices, one or more optical disk storage devices, one ormore flash memory devices, or one or more other non-volatile solid statestorage devices. Memory 806, optionally, includes one or more storagedevices remotely located from one or more processing units 802. Memory806, or alternatively the non-volatile memory within memory 806,includes a non-transitory computer readable storage medium. In someimplementations, memory 806, or the non-transitory computer readablestorage medium of memory 806, stores the following programs, modules,and data structures, or a subset or superset thereof:

-   -   operating system 816 including procedures for handling various        basic system services and for performing hardware dependent        tasks;    -   network communication module 818 for connecting client device        104 to other computing devices (e.g., server system 108)        connected to one or more networks 110 via one or more network        interfaces 804 (wired or wireless);    -   presentation module 820 for enabling presentation of information        (e.g., a user interface for application(s) or a social        networking platform, widgets, websites and web pages thereof,        and/or games, audio and/or video content, text, etc.) at client        device 104 via one or more output devices 812 (e.g., displays,        speakers, etc.) associated with user interface 810;    -   input processing module 822 for detecting one or more user        inputs or interactions from one of the one or more input devices        814 and interpreting the detected input or interaction;    -   one or more applications 824 for execution by client device 104        (e.g., games, application marketplaces, payment platforms,        and/or other web or non-web based applications);    -   client-side module 102, which provides client-side data        processing and functionalities for real-time audio/video        communication, including but not limited to:        -   data transmission module 826 for transmitting            audio/video/textual data to and from the server and other            client devices;        -   translation module 828 for translating audio or text from            one language to another language;        -   speech recognition module 830 for performing speech-to-text            conversion on speech audio input;        -   presenting module 832 for presenting original audio/video            and/or translations in audio and/or textual forms;        -   determining module 834 for determining the target language            and whether the target language of a client device is the            same as a default language set for the client device;        -   obtaining module 836 for obtaining current language            attributes of the client device; and        -   other modules 838 for performing other functions set forth            herein.

Each of the above identified elements may be stored in one or more ofthe previously mentioned memory devices, and corresponds to a set ofinstructions for performing a function described above. The aboveidentified modules or programs (i.e., sets of instructions) need not beimplemented as separate software programs, procedures, modules or datastructures, and thus various subsets of these modules may be combined orotherwise re-arranged in various implementations. In someimplementations, memory 806, optionally, stores a subset of the modulesand data structures identified above. Furthermore, memory 806,optionally, stores additional modules and data structures not describedabove.

FIG. 9 is a block diagram illustrating server system 108 in accordancewith some embodiments. Server system 108, typically, includes one ormore processing units (CPUs) 902, one or more network interfaces 904(e.g., including I/O interface to one or more clients 114 and I/Ointerface to one or more external services), memory 906, and one or morecommunication buses 908 for interconnecting these components (sometimescalled a chipset). Server 108 also optionally includes a user interface910. User interface 910 includes one or more output devices 912 thatenable presentation of information and one or more input devices 914that enable user input. Memory 906 includes high-speed random accessmemory, such as DRAM, SRAM, DDR RAM, or other random access solid statememory devices; and, optionally, includes non-volatile memory, such asone or more magnetic disk storage devices, one or more optical diskstorage devices, one or more flash memory devices, or one or more othernon-volatile solid state storage devices. Memory 906, optionally,includes one or more storage devices remotely located from one or moreprocessing units 902. Memory 906, or alternatively the non-volatilememory within memory 906, includes a non-transitory computer readablestorage medium. In some implementations, memory 906, or thenon-transitory computer readable storage medium of memory 906, storesthe following programs, modules, and data structures, or a subset orsuperset thereof:

-   -   operating system 916 including procedures for handling various        basic system services and for performing hardware dependent        tasks;    -   network communication module 918 for connecting server system        108 to other computing devices (e.g., client devices 104 and        external service(s)) connected to one or more networks 110 via        one or more network interfaces 904 (wired or wireless);    -   presentation module 920 for enabling presentation of        information;    -   input processing module 922 for detecting one or more user        inputs or interactions from one of the one or more input devices        814 and interpreting the detected input or interaction;    -   one or more server applications 924 for managing the server        operation;    -   server-side module 106, which provides server-side data        processing and functionalities for the facilitating the        audio/video communication between client devices, including but        not limited to:        -   data transmission module 926 for transmitting            audio/video/textual data to and from the server and other            client devices;        -   translation module 928 for translating audio or text from            one language to another language;        -   speech recognition module 930 for performing speech-to-text            conversion on speech audio input;        -   obtaining module 932 for obtaining current language            attributes of the client device;        -   determining module 934 for determining the target language            and whether the target language of a client device is the            same as a default language set for the client device;        -   audio/video processing module 936 for processing the input            stream for audio processing and video processing separately;            and        -   other modules 938 for performing other functions set forth            herein.

Each of the above identified elements may be stored in one or more ofthe previously mentioned memory devices, and corresponds to a set ofinstructions for performing a function described above. The aboveidentified modules or programs (i.e., sets of instructions) need not beimplemented as separate software programs, procedures, or modules, andthus various subsets of these modules may be combined or otherwisere-arranged in various implementations. In some implementations, memory906, optionally, stores a subset of the modules and data structuresidentified above. Furthermore, memory 906, optionally, stores additionalmodules and data structures not described above.

In some embodiments, at least some of the functions of server system 108are performed by client device 104, and the corresponding sub-modules ofthese functions may be located within client device 104 rather thanserver system 108. In some embodiments, at least some of the functionsof client device 104 are performed by server system 108, and thecorresponding sub-modules of these functions may be located withinserver system 108 rather than client device 104. Client device 104 andserver system 108 shown in FIGS. 1-5, respectively, are merelyillustrative, and different configurations of the modules forimplementing the functions described herein are possible in variousembodiments.

While particular embodiments are described above, it will be understoodit is not intended to limit the application to these particularembodiments. On the contrary, the application includes alternatives,modifications and equivalents that are within the spirit and scope ofthe appended claims. Numerous specific details are set forth in order toprovide a thorough understanding of the subject matter presented herein.But it will be apparent to one of ordinary skill in the art that thesubject matter may be practiced without these specific details. In otherinstances, well-known methods, procedures, components, and circuits havenot been described in detail so as not to unnecessarily obscure aspectsof the embodiments.

What is claimed is:
 1. A method of processing audio communications overa social networking platform, the method comprising: at a sever that hasone or more processors and memory, wherein, through the server, a firstclient device has established an audio and/or video communicationsession with a second client device over the social networking platform:receiving a first audio transmission from the second client device,wherein the first audio transmission is provided by the second clientdevice in a source language that is distinct from a default languageassociated with the first client device; obtaining one or more currentuser language attributes for the first client device, wherein the one ormore current user language attributes are indicative of a currentlanguage that is used for the audio and/or video communication sessionat the first client device; in accordance with a determination that theone or more current user language attributes suggest a target languagethat is currently used for the audio and/or video communication sessionat the first client device is distinct from the default languageassociated with the first client device: obtaining a translation of thefirst audio transmission from the source language into the targetlanguage; and sending, to the first client device, the translation ofthe first audio transmission in the target language, wherein thetranslation is presented to a user at the first client device.
 2. Themethod of claim 1, wherein the obtaining the one or more current userlanguage attributes and suggesting the target language that is currentlyused for the audio and/or video communication session at the firstclient device further comprises: receiving, from the first clientdevice, facial features of the current user and a current geolocation ofthe first client device; determining a relationship between the facialfeatures of the current user and the current geolocation of the firstclient device; and suggesting the target language according to adetermination that the relationship meets predefined criteria.
 3. Themethod of claim 1, wherein the obtaining the one or more current userlanguage attributes and suggesting the target language that is currentlyused for the audio and/or video communication session at the firstclient device further comprises: receiving, from the first clientdevice, an audio message that has been received locally at the firstclient device; analyzing linguistic characteristics of the audio messagereceived locally at the first client device; and suggesting the targetlanguage that is currently used for the audio and/or video communicationsession at the first client device in accordance with a result ofanalyzing the linguistic characteristics of the audio message.
 4. Themethod of claim 1, further comprising: obtaining vocal characteristicsof a voice in the first audio transmission; and according to the vocalcharacteristics of the voice in the first audio transmission, generatinga simulated first audio transmission that includes the translation ofthe first audio transmission spoken in the target language in accordancewith the vocal characteristics of the voice of the first audiotransmission.
 5. The method of claim 4, wherein the sending, to thefirst client device, the translation of the first audio transmission inthe target language to a user at the first client device includes:sending, to the first client device, a textual representation of thetranslation of the first audio transmission in the target language tothe user at the first client device; and sending, to the first clientdevice, the simulated first audio transmission that is generated inaccordance with the vocal characteristics of the voice in the firstaudio transmission.
 6. The method of claim 1, wherein the receiving afirst audio transmission from the second client device furthercomprises: receiving two or more audio packets of the first audiotransmission from the second client device, wherein the two or moreaudio packets have been sent from the second client device sequentiallyaccording to respective timestamps of the two or more audio packets, andwherein each respective timestamp is indicative of a start time of acorresponding audio paragraph identified in the first audiotransmission.
 7. The method of claim 6, wherein the obtaining thetranslation of the first audio transmission from the source languageinto the target language and sending the translation of the first audiotransmission in the target language to the first client device furthercomprise: obtaining respective translations of the two or more audiopackets from the source language into the target language sequentiallyaccording to the respective timestamps of the two or more audio packets;and sending a first translation of at least one of the two or more audiopackets to the first client device after the first translation iscompleted and before translation of at least another one of the two ormore audio packets is completed.
 8. The method of claim 6, furthercomprising: receiving a first video transmission while receiving thefirst audio transmission from the first client device, wherein the firstvideo transmission is marked with the same set of timestamps as the twoor more audio packets; and sending the first video transmission and therespective translations of the two or more audio packets in the firstaudio transmission with the same set of timestamps to the first clientdevice such that the first client device synchronously present therespective translations of the two or more audio packets of the firstaudio transmission and the first video transmission according to thesame set of timestamps.
 9. A computer server through which a firstclient device has established an audio and/or video communicationsession with a second client device over a social networking platform,the computer server comprising: one or more processors; memory; and oneor more programs, wherein the one or more programs are stored in thememory and configured to be executed by the one or more processors, theone or more programs including instructions for: receiving a first audiotransmission from the second client device, wherein the first audiotransmission is provided by the second client device in a sourcelanguage that is distinct from a default language associated with thefirst client device; obtaining one or more current user languageattributes for the first client device, wherein the one or more currentuser language attributes are indicative of a current language that isused for the audio and/or video communication session at the firstclient device; in accordance with a determination that the one or morecurrent user language attributes suggest a target language that iscurrently used for the audio and/or video communication session at thefirst client device is distinct from the default language associatedwith the first client device: obtaining a translation of the first audiotransmission from the source language into the target language; andsending, to the first client device, the translation of the first audiotransmission in the target language, wherein the translation ispresented to a user at the first client device.
 10. The computer serverof claim 9, wherein the obtaining the one or more current user languageattributes and suggesting the target language that is currently used forthe audio and/or video communication session at the first client devicefurther comprises: receiving, from the first client device, facialfeatures of the current user and a current geolocation of the firstclient device; determining a relationship between the facial features ofthe current user and the current geolocation of the first client device;and suggesting the target language according to a determination that therelationship meets predefined criteria.
 11. The computer server of claim9, wherein the obtaining the one or more current user languageattributes and suggesting the target language that is currently used forthe audio and/or video communication session at the first client devicefurther comprises: receiving, from the first client device, an audiomessage that has been received locally at the first client device;analyzing linguistic characteristics of the audio message receivedlocally at the first client device; and suggesting the target languagethat is currently used for the audio and/or video communication sessionat the first client device in accordance with a result of analyzing thelinguistic characteristics of the audio message.
 12. The computer serverof claim 9, wherein the one or more programs further includeinstructions for: obtaining vocal characteristics of a voice in thefirst audio transmission; and according to the vocal characteristics ofthe voice in the first audio transmission, generating a simulated firstaudio transmission that includes the translation of the first audiotransmission spoken in the target language in accordance with the vocalcharacteristics of the voice of the first audio transmission.
 13. Thecomputer server of claim 12, wherein the sending, to the first clientdevice, the translation of the first audio transmission in the targetlanguage to a user at the first client device includes: sending, to thefirst client device, a textual representation of the translation of thefirst audio transmission in the target language to the user at the firstclient device; and sending, to the first client device, the simulatedfirst audio transmission that is generated in accordance with the vocalcharacteristics of the voice in the first audio transmission.
 14. Thecomputer server of claim 9, wherein the receiving a first audiotransmission from the second client device further comprises: receivingtwo or more audio packets of the first audio transmission from thesecond client device, wherein the two or more audio packets have beensent from the second client device sequentially according to respectivetimestamps of the two or more audio packets, and wherein each respectivetimestamp is indicative of a start time of a corresponding audioparagraph identified in the first audio transmission.
 15. The computerserver of claim 14, wherein the obtaining the translation of the firstaudio transmission from the source language into the target language andsending the translation of the first audio transmission in the targetlanguage to the first client device further comprise: obtainingrespective translations of the two or more audio packets from the sourcelanguage into the target language sequentially according to therespective timestamps of the two or more audio packets; and sending afirst translation of at least one of the two or more audio packets tothe first client device after the first translation is completed andbefore translation of at least another one of the two or more audiopackets is completed.
 16. The computer server of claim 14, wherein theone or more programs further include instructions for: receiving a firstvideo transmission while receiving the first audio transmission from thefirst client device, wherein the first video transmission is marked withthe same set of timestamps as the two or more audio packets; and sendingthe first video transmission and the respective translations of the twoor more audio packets in the first audio transmission with the same setof timestamps to the first client device such that the first clientdevice synchronously present the respective translations of the two ormore audio packets of the first audio transmission and the first videotransmission according to the same set of timestamps.
 17. Anon-transitory computer readable storage medium storing one or moreprograms, the one or more programs, when executed by a computer serverthrough which a first client device has established an audio and/orvideo communication session with a second client device over a socialnetworking platform, cause the computer server to perform operationscomprising: receiving a first audio transmission from the second clientdevice, wherein the first audio transmission is provided by the secondclient device in a source language that is distinct from a defaultlanguage associated with the first client device; obtaining one or morecurrent user language attributes for the first client device, whereinthe one or more current user language attributes are indicative of acurrent language that is used for the audio and/or video communicationsession at the first client device; in accordance with a determinationthat the one or more current user language attributes suggest a targetlanguage that is currently used for the audio and/or video communicationsession at the first client device is distinct from the default languageassociated with the first client device: obtaining a translation of thefirst audio transmission from the source language into the targetlanguage; and sending, to the first client device, the translation ofthe first audio transmission in the target language, wherein thetranslation is presented to a user at the first client device.
 18. Thenon-transitory computer readable storage medium of claim 17, wherein theobtaining the one or more current user language attributes andsuggesting the target language that is currently used for the audioand/or video communication session at the first client device furthercomprises: receiving, from the first client device, facial features ofthe current user and a current geolocation of the first client device;determining a relationship between the facial features of the currentuser and the current geolocation of the first client device; andsuggesting the target language according to a determination that therelationship meets predefined criteria.
 19. The non-transitory computerreadable storage medium of claim 17, wherein the obtaining the one ormore current user language attributes and suggesting the target languagethat is currently used for the audio and/or video communication sessionat the first client device further comprises: receiving, from the firstclient device, an audio message that has been received locally at thefirst client device; analyzing linguistic characteristics of the audiomessage received locally at the first client device; and suggesting thetarget language that is currently used for the audio and/or videocommunication session at the first client device in accordance with aresult of analyzing the linguistic characteristics of the audio message.20. The non-transitory computer readable storage medium of claim 17,wherein the one or more programs further include instructions for:obtaining vocal characteristics of a voice in the first audiotransmission; and according to the vocal characteristics of the voice inthe first audio transmission, generating a simulated first audiotransmission that includes the translation of the first audiotransmission spoken in the target language in accordance with the vocalcharacteristics of the voice of the first audio transmission.